home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Tutorial / Cookbook / 13.pie_slice / slice.psw < prev   
Text File  |  1995-06-12  |  890b  |  47 lines

  1. defineps doLine(float ox, oy, dx, dy)
  2.     5 setlinewidth
  3.     newpath
  4.        ox oy moveto
  5.        dx dy rlineto
  6.     stroke
  7. endps
  8.  
  9. defineps doArc(float ox, oy, r, ang1, ang2)
  10.     10 setlinewidth
  11.     ox oy r ang1 ang2 arc
  12.     stroke
  13. endps
  14.  
  15. defineps drawSlice (float grayshade, radius, startangle, endangle, labelps; char *thelabel)
  16.     1 setlinewidth
  17.     newpath 0 0 moveto
  18.      0 0 radius startangle endangle arc
  19.    closepath
  20.    1.415 setmiterlimit
  21.  
  22.    gsave
  23.     grayshade setgray
  24.     fill
  25.    grestore
  26.    stroke
  27.    gsave
  28.     startangle endangle add 2 div rotate
  29.  
  30.     radius 0 translate
  31.     newpath
  32.       0 0 moveto labelps .8 mul 0 lineto stroke
  33.     labelps 0 translate
  34.     0 0 transform
  35.    grestore
  36.    itransform
  37.    /y exch def /x exch def
  38.    x y moveto
  39.  
  40.    x 0 lt
  41.       { (thelabel) stringwidth pop neg 0 rmoveto }
  42.       if
  43.     y 0 lt { 0 labelps neg rmoveto } if
  44.     (thelabel) show
  45. endps
  46.  
  47.